#!/bin/usr/python
#-*- encoding=UTF-8 -*-

"""
: 计算a+b，但是不许使用+和—运算符号
: 移位计算二进制
: 无进位^求和，有进位则&运算再移位，直至无进位
: python的整数不是固定的32位，需要处理 
负整数-0x800000000 ~ -1 正整数 0 ~ 0x7FFFFFFF
"""

class GetSum(object):
	def getSum(self, a, b):
		"""
		:type a: int
		:type b: int
		:rtype: int
		"""
		MAX_INT = 0x7FFFFFFF
		MIN_INT = 0x80000000
		MASK = 0x100000000
		while b:
			a, b = (a ^ b) % MASK, ((a & b) << 1) % MASK
		return a if a <= MAX_INT else ~((a % MIN_INT) ^ MAX_INT)

if __name__ == '__main__':

	ob = GetSum()

	print ob.getSum(-1,-2)
		